<?php
/*
 * [JINYUN!] (C)2001-2099 Jinyunweb.com
 * This is NOT a freeware, use is subject to license terms
 * $Id: 2017-12-13 03:39:35 apple $
*/
defined('BY_JYA') or exit('error');
$_RQ['op']=$_RQ['op']?$_RQ['op']:'edit';
$tabs=array(
	array('op'=>'edit','title'=>'企业应用'),
	array('op'=>'renzheng','title'=>'域名认证文件上传'),
);
if($_RQ['op']=='edit'){
	$return=array();
	$pid=pdo_getcolumn('core_plugins',array('name'=>'jy_merchscrm'),'id');
	$item=pdo_get('core_open_plugin',array('pid'=>$pid,'uniacid'=>$_SESSION['uniacid'],'isplugin'=>0));
	if(!$item){
		$title=pdo_getcolumn('core_plugins',array('name'=>'jy_merchscrm'),'title');
		$item=array(
			'uniacid'=>$_SESSION['uniacid'],
			'title'=>$title,
			'pid'=>$pid,
			'token'=>random(30),
			'aeskey'=>random(43),
			'tabletype'=>1,
			'saastype'=>1,
		);	
		$item['createtime']=TIMESTAMP;
		$item['opentype']='wxwork';
		pdo_insert('core_open_plugin',$item);
		$item['id']=pdo_insertid();
	}
	$plugin_name='jy_merchscrm';
	$wxwork_api=SITEROOT.'api/wxwork_api.php?i='.$_SESSION['uniacid'].'&isopen=1&pid='.$item['id'];
	$backurl=urlencode(custom_url('core/member.wxwork_auth//isget=1&plugin_name='.$plugin_name,true));
	$item['index_url']='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$item['suite_id'].'&redirect_uri='.$backurl.'&response_type=code&scope=snsapi_base&state=getcode#wechat_redirect';
	$item['domain']=$_SERVER['HTTP_HOST'];
	//$item['set_url']=manage_url($plugin_name.'/basic.module_home/qyopen_set/corpid=$CORPID$',true);
	$item['set_url']=custom_url($plugin_name.'/merch.index/',true);
	$item['data_url']=$wxwork_api;
	$item['send_url']=$wxwork_api;
	$item['wxwork_api']=$wxwork_api;
	$return['item']=$item;
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',
		'tabs'=>$tabs,
		'edit_tab'=>true,
		'edit'=>array(
				array('title'=>'<red>发布授权失败？</red>1、请注意，白名单IP是否正确（https://open.work.weixin.qq.com/服务商信息--IP白名单）！','type'=>'tip'),
				array('name'=>'title','title'=>'应用名称','type'=>'string','must'=>true),
				array('name'=>'saastype','title'=>'授权安装模式','type'=>'radio','options'=>'saastype','help'=>'[第三方应用发布]:<red>有很多限制</red>，已经无法获取编辑通讯录的内容（除非申请开通通讯录编辑权限）;如果不用发布到企业微信SAAS市场,只是方便客户安装使用，建议选择【应用代开发】'),
				array('name'=>'logo','title'=>'应用LOGO','type'=>'image'),
				array('name'=>'images','title'=>'应用展示','type'=>'images','show'=>array('saastype'=>0)),
				array('name'=>'desc','title'=>'应用描述','type'=>'string'),
				array('name'=>'type','title'=>'应用类型','type'=>'radio','options'=>'types'),
				array('name'=>'groupid','title'=>'应用分类','type'=>'radio','options'=>'groups'),
				array('type'=>'string','name'=>'suite_id','title'=>'应用ID','show'=>array('saastype'=>0),'help'=>'https://open.work.weixin.qq.com/ 创建应用后可获取；以ww或wx开头应用id（对应于旧的以tj开头的套件id）'),
				array('type'=>'string','name'=>'suite_secret','title'=>'应用secret','show'=>array('saastype'=>0),'help'=>'https://open.work.weixin.qq.com/ 创建应用后可获取；'),
				array('type'=>'string','name'=>'suite_id','title'=>'模板ID','show'=>array('saastype'=>1),'help'=>'https://open.work.weixin.qq.com/ 创建模板后可获取；以ww或wx开头应用id（对应于旧的以dk开头的套件id）'),
				array('type'=>'string','name'=>'suite_secret','title'=>'模板secret','show'=>array('saastype'=>1),'help'=>'https://open.work.weixin.qq.com/ 创建模板后可获取；'),
				array('type'=>'copy','name'=>'index_url','title'=>'应用主页','help'=>'应用主页设置oauth2链接:用户从企业微信工作台进入应用时将直接跳转到对应的主页URL'),
				array('type'=>'copy','name'=>'index_url','title'=>'桌面端独立主页','help'=>'成员从企业微信工作台进入应用（自己的工作管理后台）'),
				array('type'=>'copy','name'=>'domain','title'=>'可信域名','help'=>'填写不带http:// 或https:// 头，可信域名必须通过ICP备案验证,设置可信域名后支持应用的OAuth2授权、JSSDK调用等（企业微信--应用管理--登录授权--授权完成回调域名--完成域名归属验证）'),
				array('type'=>'copy','name'=>'domain','title'=>'安装完成回调域名','show'=>array('saastype'=>0),'help'=>'用户安装成功后可指定跳转至该域名的链接'),
				array('type'=>'copy','name'=>'set_url','title'=>'业务设置URL','help'=>'授权企业的管理员可从企业微信后台的应用详情页免登录直接跳转该链接进行应用配置'),
				array('type'=>'copy','name'=>'data_url','title'=>'数据回调URL','help'=>'用于接收托管企业微信应用的用户消息、进入应用事件、通讯录变更事件'),
				array('type'=>'copy','name'=>'send_url','title'=>'指令回调URL','show'=>array('saastype'=>0),'help'=>'用于接收应用授权变更事件（应用添加、删除、修改）以及ticket参数，ticket说明详API接口说明'),
				array('type'=>'copy','name'=>'send_url','title'=>'代开发模板回调URL','show'=>array('saastype'=>1),'help'=>'用于接收应用授权变更事件（应用添加、删除、修改）以及ticket参数，ticket说明详API接口说明'),
				array('type'=>'copy','title'=>'令牌（Token）','name'=>'token','help'=>'复制到企业微信对应应用，保持一直！' ),
				array('type'=>'copy','title'=>'消息加解密密钥(EncodingAESKey)','name'=>'aeskey','help'=>'复制到企业微信对应应用，保持一直！' ),
		)
	);
	$return['saastype']=array('0'=>'第三方应用发布','1'=>'应用代开发');
	$return['types']=array('0'=>'普通应用','1'=>'通讯录应用');
	$return['groups']=array(
		'0'=>'客户关系',
		'1'=>'供应链管理',
		'2'=>'移动办公',
		'3'=>'团队协同',
		'4'=>'文化建设',
		'5'=>'企业培训',
		'6'=>'人力资源',
		'7'=>'财务报销',
		'8'=>'企业服务',
		'9'=>'表单流程',
		'10'=>'电子合同',
		'11'=>'家校沟通',
	);
	$return['htmls']=$htmls;
	exi($return);
}
if($_RQ['op']=='post'){
	$postdata=get_postdata();
	if(!$postdata['title']){
		exi('标题不能为空','error');
	}
	$pid=pdo_getcolumn('core_plugins',array('name'=>'jy_merchscrm'),'id');
	$postdata['pid']=$pid;
	$data=array(
		'title'=>trim($postdata['title']),
		'desc'=>trim($postdata['desc']),
		'images'=>ijson_encode($postdata['images']),
		'logo'=>trim($postdata['logo']),
		'tags'=>trim($postdata['tags']),
		'pid'=>intval($postdata['pid']),
		'type'=>intval($postdata['type']),
		'star'=>intval($postdata['star']),
		'status'=>intval($postdata['status']),
		'tabletype'=>intval($postdata['tabletype']),
		'groupid'=>intval($postdata['groupid']),
		'suite_id'=>trim($postdata['suite_id']),
		'suite_secret'=>trim($postdata['suite_secret']),
		'saastype'=>intval($postdata['saastype']),
	);
	$id=intval($postdata['id']);
	if($id){
		if($data['suite_id'] && $data['suite_secret']){
			$data['isbindopen']=1;
		}else{
			$data['isbindopen']=0;
		}
		pdo_update('core_open_plugin',$data,array('id'=>$id));
	}else{
		$data['uniacid']=$_SESSION['uniacid'];
		$data['opentype']='wxwork';
		$data['createtime']=TIMESTAMP;
		pdo_insert('core_open_plugin',$data);
	}
	exi('操作成功！','','goback');
}
if($_RQ['op']=='renzheng'){
	//上传认证文件
	if($_RQ['postdata']){
		$post=get_postdata();
		if(!$post['renzheng']){
			exi('请先上传认证文件！','error');
		}
		$filename=pdo_getcolumn('core_attachment',array('attachment'=>$post['renzheng']),'title');
		if(preg_match('/[^\w\.-]/',$filename)){
			exi('认证文件名不合法！','error');
		}
		$file_data=cfc('files')->source_read($post['renzheng']);
		if(strlen($file_data)>100){
			exi('上传失败！认证文件内容超过限制！','error');
		}
		file_put_contents(ROOT_D.'/'.$filename.'.txt',$file_data);
		exi('上传成功！');
	}
	$return['item']=array();
	$return['htmls']=array(
		'type'=>'edit',
		'desc'=>'上传认证文件',
		'tabs'=>$tabs,
		'edit'=>array(
			array('type'=>'upfile','title'=>'认证文件','name'=>'renzheng','ftype'=>'other','help'=>'本功能用于上传认证文件到站点根目录！例如，小程序或企业微信设置授权域名时，提示需要上传认证文件。请下载下来，并在此处上传。'),
		),
	);
	exi($return);
}